package com.java.program_questions;

/**
 * 问题：打印出所有的"水仙花数"，"水仙花数"指三位数的各位数字立方和等于该数本身，例如153=1^3+5^3+3^3
 * 分析：利用for循环100-999每个数，每个数分解出个位、十位、百位
 */
public class Question3 {
    public static void main(String[] args) {
        System.out.println("100-999间水仙花数有：");

        int count = 0;

        for (int i = 100; i <= 999; i++) {
            int a = i % 10;
            int b = (i / 10) % 10;
            int c = i / 100;

            // 五个一组输出
            if (i == a * a * a + b * b * b + c * c * c) {
                count++;
                if (count % 5 == 0) {
                    System.out.println(i);
                } else {
                    System.out.print(i + " ");
                }
            }
        }
        System.out.println();

        System.out.print("共有" + count + "个水仙花数");
    }
}
